<?php
namespace App\Traits;

use App\Http\Controllers\HandleRedis;
use GatewayWorker\Lib\Gateway;

/**
 * 基于onWorkerStart的助手函数(当然client_api只支持terminal+socket模式，不支持http)
 * Trait StartHandles
 * @package App\Traits
 */
trait StartHandles
{
    /**
     * 发送给已登录的用户
     * @param array $data
     */
    public static function sendToHaveLoginUser($data = [])
    {
        //发送给所有已经登录了的用户
        $allClientSession = Gateway::getAllClientSessions();
        foreach ($allClientSession as $k=>$v) {
            if(!empty($v)) Gateway::sendToClient($k,toJson($data));
        }
    }

    /**
     * 发送给给所有的用户（已登录和未登录）
     * @param array $data
     * @throws \Exception
     */
    public static function sendToAllUser($data = [])
    {
        Gateway::sendToAll(toJson($data));
    }

    /**
     * 发送给未登录的用户
     * @param array $data
     */
    public static function sendToNotLoginUser($data = [])
    {
        //发送给所有已经登录了的用户
        $allClientSession = Gateway::getAllClientSessions();
        foreach ($allClientSession as $k=>$v) {
            if(empty($v)) Gateway::sendToClient($k,toJson($data));
        }
    }
}
